Instrumente de depanare
Practica arata ca programele, oricit de ingrijit sint proiectate si realizate, contin, cel putin in faza initiala, erori (bugs). Erorile trebuie localizate si corectate (programele trebuie depanate), proces care, de multe ori, este iterativ.  Depanarea este un proces dificil, care se simplifica prin fragmentarea programelor in blocuri mai mici, mai usor de stapinit. In sprijinul depanatorului  se pot oferi urmatoarele seturi de instrumente: 
a)executie pas cu pas;
b)puncte de suspendare a executiei (breakpoints);
c)trasee ale programului (program trace).
Primul instrument permite rularea programului instructiune cu instructiune, executia fiind stopata la sfirsitul fiecarei instructiuni. Prin examinarea starii CPU si a locatiilor de memorie se poate determina eventuala abatere a programului de la comportarea dorita. 
Punctele de suspendare a executiei permit suspendarea executiei unui program dupa executia unei anumite instructiuni. Ele permit executia unor blocuri mai mari de program inainte de suspendarea executiei la un anumit punct cu scopul testarii rezultatelor intermediare. 
Traseul programului consta intr o inregistrare a tuturor instructiunilor executate de program de la ultima suspendare si permite verificarea corectitudinii fluxului de instructiuni parcurse de program. Pentru oferirea suportului necesar acestor instrumente de depanare, toate microprocesoarele moderne sint prevazute cu mecanismele hardware care se descriu in cele ce urmeaza.

1.Capcana de traseu
Majoritatea microprocesoarelor sint prevazute cu o capcana speciala, numita trace trap=capcana de traseu. Ea permite atit executia pas cu pas, cit si realizarea de trasee ale programului. Capcana se activeaza (dezactiveaza) prin intermediul unui indicator de conditie special, accesibil prin program. 
Cind este activa, capcana de traseu lanseaza in executie rutina de tratare dupa ultima instructiune executata.  Desigur, capcana este dezactivata automat pe durata executiei rutinei de tratare in scopul evitarii generarii unei bucle infinite. 
Rutina de tratare a capcanei de traseu permite programatorului sa afiseze un set de informatii (starea CPU, locatii de memorie) care sa inlesneasca depanarea programului. Aceeasi rutina permite memorarea intr un tampon al traseului a datelor despre instructiunea executata. 

2.Puncte de suspendare software a executiei
Rularea pas cu pas a programelor este, de cele mai multe ori, consumatoare de timp, mai ales dupa ce s au corectat mari blocuri de program. In aceste conditii isi dovedeste utilitatea punctul de suspendare a executiei (breakpoint). Aceasta facilitate permite inserarea in program a unor "comenzi" de suspendare. In acest scop se selecteaza instructiunile pentru care tentativa CPU de a le executa duce la suspendarea executiei programului. Pentru implementare se foloseste o instructiune capcana specifica, a carei lungime este cea minima permisa pentru o instructiune.
Cerinta privind lungimea este mai bine inteleasa cind se considera operatiile necesare realizarii punctului de suspendare a executiei. Instructiunea a carei executie ar trebui sa suspende rularea programului este stocata intr o zona speciala de memorie si este inlocuita prin instructiunea breakpoint. De aceea, instructiunea capcana nu poate fi mai lunga decit cea pe care o inlocuieste; in caz contrar, substituirea ar afecta si o a doua instructiune. Cind contorul programului indica locatia in care se afla instructiunea breakpoint, aceasta este executata, fapt ce rezulta in activarea rutinei asociate de tratare.
Este posibila reluarea executiei programului dupa o suspendare prin breakpoint, dar, in prealabil,instructiunea originala trebuie readusa in locatia corespunzatoare din zona de salvare.

3.Punct de suspendare hardware a executiei
Mecanismul de suspendare software a executiei permite utilizatorului sa intrerupa executia unui program doar cu ajutorul unei instructiuni particulare. Nu este posibil sa se stopeze rularea programului impunind drept conditie de oprire accesul la un anumit operator dintr o anumita locatie. 
Punctul de suspendare hardware a executiei se implementeaza cu ajutorul unitatii de gestiune a memoriei (memory management unit-MMU), care contine registre in care se inscrie adresa de memorie la a carei adresare trebuie sa se suspende executia programului. Cind mecanismul de breakpoint este activat, MMU compara fiecare noua adresa de acces cu continutul registrelor de breakpoint. La coincidenta MMU emite un semnal capcana, fapt ce permite ca tentativa de acces la locatia de memorie al carei nume este pastrat in registrele de breakpoint sa conduca la suspendarea executiei programului si activarea unei rutine adecvate de tratare a situatiei.
Microprocesoarele moderne permit utilizarea de puncte de suspendare a executiei programului atit software, cit si hardware. Numarul primelor este limitat doar de dimensiune zonei de salvare, in timp ce numarul de puncte de suspendare hardware este limitat de numarul de registre breakpoint din MMU